The present invention relates to a technique for sharing information between a plurality of operating systems in an information processing apparatus which can have the plurality of operating systems and can switchingly operate one of the operating systems.
In an ordinary information processing apparatus, a single operating system (OS) is operated to perform resource schedule management in such a manner that the apparatus can manage such resources such as a processor, a memory and input/output devices which form the information processing apparatus for efficient operation of the resources.
There are various types of operating systems which are excellent in operations such as user interface, multimedia, communications, etc. and excellent in real time processing. For the purpose of obtaining such features, there is a demand of a single processor which can execute a plurality of operating systems.
As a mechanism for operating a plurality of operating systems on a single processor, there is disclosed a virtual machine system (Volume. 11 in OS Series, VM, Kyouritsu Publishing, written by Seio Okazaki) which is implemented in a large scale computer. In the virtual machine system, a virtual machine control program occupies, manages and virtualizes all hardware to form a virtual machine. A controller forming a part of the virtual machine virtualizes a physical memory, input/output unit device, external interrupt, etc.
Meanwhile, as a technique for offering an interface of a plurality of operating systems with a single processor, a micro-kernel exists. In the case of the micro-kernel, an operating system server, which provides functions of the operating systems to a user, is formed on the micro-kernel. The user utilizes computer resources via the server. When a server is provided for each of the operating systems, the user can enjoy provision of various operating system environments.
In a car navigation, on the other hand, site information such as restaurant information is previously stored in a storage such as a CD-ROM or DVD-ROM so that the site information can be read out from such a storage and displayed on a map.
In an environment wherein a plurality of operating systems are operated on a single processor, the operating systems are operated autonomously each other so that application software or programs mounted to the respective operating systems are operated individually and asynchronously. Among the types of application programs operating on the operating systems, however, there may exist some application program which can realize its function by exchanging information with the other application program in synchronism with each other. In such a case, a mechanism is required by which the application program can share information on the respective operating systems or can be synchronized thereon. To this end, there are suggested a shared memory which provides a memory zone capable of being referred to by respective operating systems, and a message communication technique for realizing communication between respective operating systems.
When such a shared memory is used to share information between the plurality of operating systems for their cooperative operation, however, there occur problems which follow.
That is, while the application program on one of the operating systems is registering information in the shared memory, if an OS context change-over takes place to change the current operating system to another operating system, then the application program on the changed operating system refers to the incorrect information being rewritten in the shared memory.
Further, when the application program of one operating system registered information in the shared memory or changed information in the shared memory, the application program of another operating system cannot immediately recognize it. For example, even when the updating of the information is monitored through polling, the application program cannot recognize it in a time shorter than a polling interval time. In this case, in addition, periodical information updating must be judged, which results in an increased load of the processor.
Furthermore, in the case where a communication message is used to share information between a plurality of operating systems for their linkage operation, if the application programs of the respective operating systems do not know previously addresses of a shared memory having information to be shared or interface information such as task ID's of the respective application tasks, then there occurs a problem that information exchange is impossible.
When an environment, wherein a plurality of operating systems are operated on a single processor, is applied to a position information display device such as a navigation device, it is required for the application program of each of the operating systems to perform its processing operation with use of the latest position information. For this reason, the display device is remarkably affected by the aforementioned problem.
In the prior art, further, when it is desired to newly add an application program utilizing information shared between a plurality of operating systems in an already-developed system environment, the newly-added application program requires modification of existing application programs, with the result that the number of developing steps and a development period are increased.